package Thread;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class ThreadPool {
    //创建线程池  参数:核心线程数 最大线程数 存活时间 任务队列 线程工厂拒绝策略
    public static void main(String[] args) {
        //线程池的API

    }




    public static void usePool(){

        ExecutorService pool= Executors.newSingleThreadExecutor();//一个核心线程
//        pool= Executors.newFixedThreadPool(10);固定核心线程数
//        pool= Executors.newCachedThreadPool();可变数量的线程
//        pool= Executors.newScheduledThreadPool(10);执行定时/间隔任务

        //使用线程池
        //先把任务分出去 再打印结果
        List<Future> futuresList=new ArrayList<>();
        for(int i=0;i<20;i++){
            Runnable runnable=()->{
                System.out.println(Thread.currentThread().getName());
            };
            pool.execute(runnable);
            //Future<Integer> task=pool.submit(runnable);有返回值
            //futuresList.add(task);
        }

        //关闭线程池
        pool.shutdown();
//        pool.shutdownNow();返回没有结束的线程
    }
}















